<!doctype html>


<html>
<head>
  <link rel="shortcut icon" href="static/images/favicon.ico" type="image/x-icon">
  <title>eventhandler.js (Closure Library API Documentation - JavaScript)</title>
  <link rel="stylesheet" href="static/css/base.css">
  <link rel="stylesheet" href="static/css/doc.css">
  <link rel="stylesheet" href="static/css/sidetree.css">
  <link rel="stylesheet" href="static/css/prettify.css">

  <script>
     var _staticFilePath = "static/";
  </script>

  <script src="static/js/doc.js">
  </script>

  <meta charset="utf8">
</head>

<body onload="prettyPrint()">

<div id="header">
  <div class="g-section g-tpl-50-50 g-split">
    <div class="g-unit g-first">
      <a id="logo" href="index.html">Closure Library API Documentation</a>
    </div>

    <div class="g-unit">
      <div class="g-c">
        <strong>Go to class or file:</strong>
        <input type="text" id="ac">
      </div>
    </div>
  </div>
</div>





<div class="colmask rightmenu">
<div class="colleft">
    <div class="col1">
      <!-- Column 1 start -->

<div id="title">
       <span class="fn">eventhandler.js</span>
</div>

<div class="g-section g-tpl-75-25">
  <div class="g-unit g-first" id="description">
    Class to create objects which want to handle multiple events
 and have their listeners easily cleaned up via a dispose method.

 Example:
 <pre class="lang-js">
 function Something() {
 goog.events.EventHandler.call(this);

 ... set up object ...

 // Add event listeners
 this.listen(this.starEl, &#39;click&#39;, this.handleStar);
 this.listen(this.headerEl, &#39;click&#39;, this.expand);
 this.listen(this.collapseEl, &#39;click&#39;, this.collapse);
 this.listen(this.infoEl, &#39;mouseover&#39;, this.showHover);
 this.listen(this.infoEl, &#39;mouseout&#39;, this.hideHover);
 }
 goog.inherits(Something, goog.events.EventHandler);

 Something.prototype.disposeInternal = function() {
 Something.superClass_.disposeInternal.call(this);
 goog.dom.removeNode(this.container);
 };


 // Then elsewhere:

 var activeSomething = null;
 function openSomething() {
 activeSomething = new Something();
 }

 function closeSomething() {
 if (activeSomething) {
 activeSomething.dispose();  // Remove event listeners
 activeSomething = null;
 }
 }
 </pre>
  </div>
  

        <div class="g-unit" id="useful-links">
          <div class="title">Useful links</div>
          <ol>
            <li><a href="closure_goog_events_eventhandler.js.source.html"><span class='source-code-link'>Source Code</span></a></li>
          </ol>
        </div>
</div>

<h2 class="g-first">File Location</h2>
  <div class="g-section g-tpl-20-80">
    <div class="g-unit g-first">
      <div class="g-c-cell code-label">events/eventhandler.js</div>
    </div>
  </div>
<hr/>


  <h2>Classes</h2>
 <div class="fn-constructor">
        <a href="class_goog_events_EventHandler.html">
          goog.events.EventHandler</a><br/>
        <div class="class-details">Super class for objects that want to easily manage a number of event
listeners.  It allows a short cut to listen and also provides a quick way
to remove all events listeners belonging to this object. It is optimized to
use less objects if only one event is being listened to, but if that&#39;s the
case, it may not be worth using the EventHandler anyway.</div>
 </div>
      
<br/>

  <div class="legend">
        <span class="key publickey"></span><span>Public</span>
        <span class="key protectedkey"></span><span>Protected</span>
        <span class="key privatekey"></span><span>Private</span>
  </div>





  <h2>Global Properties</h2>





<div class="section">
  <table class="horiz-rule">


     <tr class="even entry public">
       <td class="access"></td>





  <a name="goog.events.EventHandler.KEY_POOL_INITIAL_COUNT"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryNamespace">goog.events.EventHandler.</span><span class="entryName">KEY_POOL_INITIAL_COUNT</span>
        : <div class="fullType"><span class="type"><a href="http://www.google.com/url?sa=D&q=https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Number">number</a></span></div>
     </div>


     <div class="entryOverview">
       Initial count for the keyPool_
     </div>

  </td>


  <td class="view-code">
     <a href="closure_goog_events_eventhandler.js.source.html#line87">Code &raquo;</a>
  </td>
     </tr>


     <tr class="odd entry public">
       <td class="access"></td>





  <a name="goog.events.EventHandler.KEY_POOL_MAX_COUNT"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryNamespace">goog.events.EventHandler.</span><span class="entryName">KEY_POOL_MAX_COUNT</span>
        : <div class="fullType"><span class="type"><a href="http://www.google.com/url?sa=D&q=https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Number">number</a></span></div>
     </div>


     <div class="entryOverview">
       Max count for the keyPool_
     </div>

  </td>


  <td class="view-code">
     <a href="closure_goog_events_eventhandler.js.source.html#line94">Code &raquo;</a>
  </td>
     </tr>


     <tr class="even entry private">
       <td class="access"></td>





  <a name="goog.events.EventHandler.keyPool_"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryNamespace">goog.events.EventHandler.</span><span class="entryName">keyPool_</span>
        : <div class="fullType"><span class="type"><a href="class_goog_structs_SimplePool.html">goog.structs.SimplePool</a></span></div>
     </div>


     <div class="entryOverview">
       SimplePool to cache the key object. This was implemented to make IE6
performance better and removed an object allocation in the listen method
when in steady state.
     </div>

  </td>


  <td class="view-code">
     <a href="closure_goog_events_eventhandler.js.source.html#line104">Code &raquo;</a>
  </td>
     </tr>


     <tr class="odd entry private">
       <td class="access"></td>





  <a name="goog.events.EventHandler.key_"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryNamespace">goog.events.EventHandler.</span><span class="entryName">key_</span>
        : <div class="fullType"><span>?</span><span class="type"><a href="http://www.google.com/url?sa=D&q=https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String">string</a></span></div>
     </div>


     <div class="entryOverview">
       Keys for event that is being listened to if only one event is being listened
to. This is a performance optimization to avoid creating an extra object
if not necessary.
     </div>

  </td>


  <td class="view-code">
     <a href="closure_goog_events_eventhandler.js.source.html#line126">Code &raquo;</a>
  </td>
     </tr>


     <tr class="even entry private">
       <td class="access"></td>





  <a name="goog.events.EventHandler.keys_"></a>

  <td>


     <div class="arg">
        <img align="left" src="static/images/blank.gif">

        <span class="entryNamespace">goog.events.EventHandler.</span><span class="entryName">keys_</span>
        : <div class="fullType"><span>?</span><span class="type"><a href="http://www.google.com/url?sa=D&q=https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object">Object</a></span></div>
     </div>


     <div class="entryOverview">
       Keys for events that are being listened to. This is used once there are more
than one event to listen to. If there is only one event to listen to, key_
is used.
     </div>

  </td>


  <td class="view-code">
     <a href="closure_goog_events_eventhandler.js.source.html#line116">Code &raquo;</a>
  </td>
     </tr>


  </table>
</div>



      <!-- Column 1 end -->
    </div>

        <div class="col2">
          <!-- Column 2 start -->
          <div class="col2-c">
            <h2 id="ref-head">Directory events</h2>
            <div id="localView"></div>
          </div>

          <div class="col2-c">
            <h2 id="ref-head">File Reference</h2>
            <div id="sideFileIndex" rootPath="closure/goog" current="events/eventhandler.js"></div>
          </div>
          <!-- Column 2 end -->
        </div>
</div>
</div>

</body>
</html>
